package Dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;


import beans.Livro;

import Uteis.FabricaDeConexoes;

public class LivroDao {
	
	private Connection conecta;
	public LivroDao() throws SQLException{
		this.conecta=FabricaDeConexoes.getConnection();
	}
	
	public void addLivro(Livro livro)throws SQLException{
		PreparedStatement adicionaLivro=this.conecta.prepareStatement("insert into Livro(isbn, nome,editora,cativo)values(?,?,?,?)");
		
		adicionaLivro.setString (1, livro.getIsbn());
		adicionaLivro.setString (2, livro.getNome_livro());
		adicionaLivro.setString (3, livro.getEditora());
		adicionaLivro.setBoolean(4,livro.isCativo());
		
		adicionaLivro.execute();
		adicionaLivro.close();
	}
	
	public ArrayList<Livro> ListaLivro() throws SQLException{
		
		PreparedStatement buscaLivro=this.conecta.prepareStatement("select* from livro");
		
		ResultSet rs= buscaLivro.executeQuery();
		ArrayList<Livro> livros=new ArrayList<Livro>();
		
		while(rs.next()){
			Livro livro = new Livro();
			livro.setIsbn      (rs.getString("isbn"));
			livro.setNome_livro(rs.getString("nome"));
			livro.setEditora   (rs.getString("editora"));
			livro.setCativo    (rs.getBoolean("cativo"));
			
			livros.add(livro);
		}
		rs.close();
		buscaLivro.close();
		conecta.close();
		
		return livros;
	}
	
	public void delLivro(Livro livroDel)throws SQLException{
		
		PreparedStatement deleteLivro=this.conecta.prepareStatement("delete from livro where isbn=?");
		deleteLivro.setString(1, livroDel.getIsbn());
		deleteLivro.execute();
		deleteLivro.close();
	}
	
	public void upadateLivro(Livro livroUp) throws SQLException{

		PreparedStatement upLivro=this.conecta.prepareStatement("update livro set isbn=?, nome=?, editora=?,cativo=? where isbn=?");

		upLivro.setString (1, livroUp.getIsbn());
		upLivro.setString (2, livroUp.getNome_livro());
		upLivro.setString (3, livroUp.getEditora());
		upLivro.setBoolean(4, livroUp.isCativo());
		upLivro.setString (5,livroUp.getIsbn());

		upLivro.execute();
		upLivro.close();

	}
}
